Uvod

Ovaj dokument će vam dati pregled osnova rada s bazom podataka moodle i s aktivnosti baza podataka. Važno je naglasiti kako ovo dvoje nisu ista stvar. Baza podataka moodle je baza koju ste napravili tijekom instalacije i u kojoj su pohranjeni svi podaci o vašoj Moodle stranici. Dok se aktivnost baza podataka kreira unutar kolegija poput foruma, anketa, rječnika i slično.

Moodle aktivnost baza podataka omogućava učenicima i profesorima da unose, pretražuju i komentiraju zapise u toj bazi. Vrlo je prilagodljiva što se tiče formata i strukture zapisa jer omogućava unos teksta, brojeva, dodavanje slika, datoteka, linkova, izbornika s višestrukim izborom i slično. No, nije namijenjena za složenu uporabu, nego omogućava skupini ljudi jednostavno dodavanje i dijeljenje strukturiranih podataka.

Rad s bazom podataka moodle

Kod rada s bazom podataka Moodle upoznat ćete se s funkcijama za dohvaćanje entiteta i liste, brisanje, dodavanje i promjenu entiteta u bazi podataka koristeći Moodle Data manipulation API.

Na samom početku prije korištenja API-ja važno je upisati global $DB; , koji predstavlja instancu moodle_database klase, koja je definirana u moodle_database.php.

global $DB;

Dohvaćanje entiteta

Postoji nekoliko načina za dohvaćanje zapisa. Prvi je get_record koji će dohvatiti jedan zapis gdje su ispunjeni svi zadani uvjeti. Dio strictness=IGNORE_ MISSING će vratiti false ukoliko zapis nije pronađen. Također imamo i IGNORE_MULTIPLE koji će vratiti prvi zapis, a ignorirati ostale, te MUST_EXIST koji će vratiti iznimku ako nema zapisa ili ako je pronađeno više zapisa.

Drugi način je get_record_select, koji će dohvatiti jedan zapis koji odgovara zadanom where uvjetu. Na primjeru na Slici 1. uvjet je da je id veći od ?, odnosno ? predstavlja ono što je napisano kod array u zagradi, a to je 111.

Treći način je get_record_sql, koji će dohvatiti jedan zapis koristeći SQL naredbu. Dijelovi SQL naredbe pišu se velikim slovima i stavljaju se pod dvostruke navodnike, a naziv tablice stavlja se u vitičaste zagrade.

Ukoliko želimo dohvatiti više zapisa pišemo get_records .

Slika 1. - Dohvaćanje entiteta

Dohvaćanje liste

Za dohvaćanje liste se koristi get_records_list. Prvi primjer sa Slike 2. će dohvatit zapise iz neke tablice (some_table), koji u koloni name imaju vrijednosti Ana i Martin. Dok će drugi primjer dohvatiti te iste zapise i uz to će prikazati odabrane kolone id, name, lastName i age.

Slika 2. - Dohvaćanje liste

Brisanje entiteta

Za brisanje zapisa koristi se delete_records, koji će obrisati zapis iz tablice gdje su ispunjeni svi zadani uvjeti. Također se može koristiti i delete_records_select, koji će obrisati jedan ili više zapisa iz tablice koji odgovara zadanom where uvjetu.

Slika 3. - Brisanje entiteta

Dodavanje entiteta

Zapisi se u bazu dodaju pomoću insert_record. Parametar returnid=true će vratiti id polje ukoliko je to zadano, dok se parametar bulk uglavnom ne koristi. Standardna klasa stdClass koristi se kod dodavanja zapisa kada želimo objekt bez neke zadane klase.

Za dodavanje više zapisa u tablicu koristi se insert_records i to samo u slučaju manjih objekata.

Slika 4. - Dodavanje entiteta

Promjena entiteta

Promjena zapisa u tablici obavlja se pomoću update_record na način da se objektu zada nova vrijednost, a zatim se izvrši promjena kod koje upisujemo naziv tablice i objekt.

Slika 5. - Promjena entiteta

Moodle aktivnost baza podataka

Za početak potrebno se logirati na Moodle i otvoriti neki postojeći kolegij ili napraviti novi. Ukoliko pravite novi kolegij dovoljna je jedna tema, a ukoliko koristite postojeći možete također koristiti i neku od postojećih tema. Kada ste na stranici od kolegija kliknite na Omogući izmjene, a zatim kod teme Dodajte aktivnost ili resurs te će se otvorit prozor u kojemu birate aktivnost baza podataka.

Slika 6. - Kolegij s temom gdje će se dodati aktivnost

Slika 7. - Dodavanje aktivnost baza podataka

Nakon što ste odabrali aktivnost baza podatka, prikazat će se postavke baze. Primjer baze u nastavku će se zvati Dodjela seminarskih tema i sadržavati će seminarske teme, učenike kojima je dodijeljena, datum predaje i slično.

U postavkama baze u kategoriji Zapisi ćemo promijeniti da je obavezno odobrenje zapisa zato što onda profesor mora prvo odobriti zapis prije nego što je dodan u bazu. Osim toga, dopustiti ćemo komentiranje kako bi vidjeli način na koji to funkcionira. Ostale postavke ćemo ostaviti kako su zadane i kliknuti na Pohrani i prikaži.

Slika 8. - Postavke baze podataka

Baza je kreirana, ali u njoj trenutno nema ništa. Stoga je potrebno kreirati polja, odnosno kolone. Polje dodajemo tako da iz padajućeg izbornika izaberemo vrstu polja.

Slika 9. - Kreirana baza podataka

Baza Dodjela seminarskih tema će imati slijedeća polja: redni broj, tema, učenik, predmet, zadana literatura i datum predaje. Od navedenih polja redni broj, tema, učenik i predmet imaju obavezan unos. Dok će vrsta polja za predmet biti izbornik, a za literaturu okvir za unos teksta.

Slika 10. - Dodana polja u bazu

Kada smo dodali sva polja koja nam trebaju idemo na karticu Predlošci, gdje ćemo samo pohraniti predložak kako bi mogli vidjeti zapise kada ih dodamo, a kasnije možete samostalno uređivati predloške koristeći HTML i CSS.

Zatim ćemo otići na karticu Dodaj zapis gdje dobijemo formu za unos podataka prema poljima koje smo odabrali. Na Slici 11. je primjer unosa, a sami proizovljno unesite još nekoliko zapisa.

Slika 11. - Primjer dodavanja zapisa u bazu

Zapise u bazi možemo pregledavati kao popis zapisa ili svaki pojedinačno. Na Slici 12. vidimo kako izgleda popis zapisa koje smo unjeli u bazu. Kao što je već ranije rečeno način na koji će se zapisi prikazati je određen predloškom te na Slici 13. možete vidjeti kako izgleda pojedinačni zapis čiji je predložak uređen pomoću HTML-a i CSS-a. Također možete vidjeti i primjer komentara.

Slika 12. - Popis zapisa

Slika 13. - Pojedinačni zapis s uređenim predloškom i primjer komentara

Na kartici Pretraživanje možemo pretraživati zapise po poljima koje smo odabrali. Na Slici 14. se nalazi primjer gdje je pretraživano po temi koristeći riječ „povijest“ te dobiveni rezultat.

Slika 14. - Pretraživanje zapisa

Literatura

Data manipulation API

URL: https://docs.moodle.org/dev/Data_manipulation_API

Cole, Jason; Foster, Helen. Using Moodle: Teaching with Popular Open Source Course Management System. [s. l.]: O'Reilly, 2008

Moodle 2: Create a database activity

URL: https://www.youtube.com/watch?v=nMUURNdZTYs

Database activity

URL: https://docs.moodle.org/31/en/Database_activity